#pragma once
#include <string>

class Token{
public:
	Token();
	Token(int line,const std::string& value);

	~Token();
	Token(const Token& token);
	const Token& operator=(const Token& token);

	// returns the token's line number
	int getLine() const;

	// returns the string value of the token
	const std::string& getValue() const;

	bool BadToken() const;
	bool eofToken() const;

	void setBadToken();
	void setEofToken();

protected:
	int line;
	std::string value;
	bool eof;
	bool bad;

};